package util.data.carddao;

import java.sql.SQLException;
import java.util.List;

import business.entity.Card;

public interface ICardDataContext {
	
	
	/**
	 * 添加名片
	 * @param card 要添加的名片
	 * @return 如果添加成功则返回添加的名片的ID,否则返回-1,或者抛出异常
	 * @throws SQLException
	 */
	public int add(Card card) throws SQLException;

	
	/**
	 * 删除名片
	 * @param ID 要删除名片的ID
	 * @throws SQLException
	 */
	public void delete(int ID) throws SQLException;

	
	/**
	 * 更新名片
	 * @param card 要更新的名片
	 * @throws SQLException
	 */
	public  void update(Card card) throws SQLException;

	
	
	/**
	 * 查询名片
	 * @param ID 要查询名片的ID
	 * @return 要查询的名片,根据Id查找Card如果没有发现会返回null
	 * @throws SQLException
	 */
	public  Card queryById(int ID) throws SQLException;
	
	
	/**
	 * 根据名字查询含有名字的名片
	 * @param name
	 * @return 名片列表
	 * @throws SQLException
	 */
	public  List<Card> queryByName(String name) throws SQLException;

	
	/**
	 * 查询所有的名片
	 * @return 名片列表
	 * @throws SQLException
	 */
	public  List<Card> queryForAll() throws SQLException;

	
	/**
	 * 根据sql语句查询
	 * @param args sql中相关的点位符的参数
	 * @param sql要执行的sql语句
	 * @return 名片列表
	 * @throws SQLException
	 */
	public List<Card> queryBySql(String sql, String[] args) throws SQLException;
}
